1. Technical Field
The present invention relates to data storage and, in particular, to data cache in a storage controller. Still more particularly, the present invention provides a method and apparatus for using a redundant array of solid state disks as level 2 cache in a storage controller.
2. Description of the Related Art
A storage controller is an embedded system logically connected between a host computer system and a pool of storage. FIG. 1 illustrates an example of a typical storage controller system. Input/output (I/O) host 102 sends read and write data access requests to storage module 110. The storage module includes storage controller 120 and disk drives 130. Storage controller 120 performs read and write operations to satisfy the data access requests of the I/O host.
Storage controller 120 includes I/O cache 122. This I/O cache, also referred to as storage controller level 1 cache, is located in the storage controller memory. Data blocks that are read from disk drives 0–N may be stored in the I/O cache so that frequently accessed data may be read from the faster memory device rather than the slower disk drives. Furthermore, I/O cache 122 may also serve as intermediate storage for data blocks that are written to the disk drives. Subsequent reads of these data blocks may be found in the cache, thus reducing access time.
Still further, each one of level 1 and level 2 cache memories is a single point of failure. Thus, a cache may appear as a weakness in system reliability. If the cache memory fails or communication error prevents access to the cache memory, data can either be lost or inaccessible. Data unavailability is perceived as a failure.
More particularly, redundant array of independent disks (RAID) systems, may stripe data blocks and store each stripe on a different physical disk drive. For example, in the storage controller system shown in FIG. 1, a data block written to storage module 110 may be striped into N+1 stripes, each stripe being stored on a respective one of drives 0–N 130. With the greater number of reads and writes to physical drives in RAID systems, the importance of I/O cache is increased. While a RAID system can improve the performance and reliability of the hard disks themselves, RAID does not affect the performance or dependability of the cache.
Therefore, it would be advantageous to provide an improved multi-level cache for storage controller systems.